package ro.fortech.peaa.repository.api;

import java.util.List;

import ro.fortech.peaa.domain.Department;

/**
 * Interface for the DepartmentMapper.
 * 
 * @author andrei
 */
public interface IDepartmentMapper {
	/** Column name: DEPARTMENT_ID. */
	public static final String ID = "DEPARTMENT_ID";
	/** Column name: DEPARTMENT_NAME. */
	public static final String NAME = "DEPARTMENT_NAME";
	/** Column name: MANAGER_ID. */
	public static final String MANAGER_ID = "MANAGER_ID";
	/** Column name: LOCATION_ID. */
	public static final String LOCATION_ID = "LOCATION_ID";
	/** Table name. */
	public static final String TABLE = "DEPARTMENTS";

	/**
	 * Returns a department based on an ID.
	 * 
	 * @param id The id of the department
	 * @return The department
	 */
	public Department find(Integer id);
	
	/**
	 * Returns all departments.
	 * 
	 * @return A list of departments
	 */
	public List<Department> findAll();
	
	/**
	 * Inserts a new department in the database.
	 * 
	 * @param Department The department to be added
	 */
	public void insert(Department Department);
	
	/**
	 * Removes a department from the database.
	 * 
	 * @param Department The department to be removed
	 */
	public void delete(Department Department);
	
	/**
	 * Updates a department in the database.
	 * 
	 * @param department The department to be updated
	 */
	public void update(Department department);
}
